<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>组件树：父组件与子组件</title>
  <script src="/js/vue.js"></script>
</head>
<body>
  <div id="app">
    <!-- 3. 使用组件 -->
    <father-cpn></father-cpn>
  </div>
<br>
  <script>
    // 1. 创建组件构造器
    const sonConstructor = Vue.extend({
        template:`    
            <div>
                <h2>这是子组件的标题</h2>
                <p>这是子组件的内容</p>
                <button>这是子组件的按钮</button>
            </div>
        `
    })

    const fatherConstructor = Vue.extend({
        template:`    
            <div>
                <h2>这是父组件的标题</h2>
                <p>这是父组件的内容</p>
                <son-cpn></son-cpn>
                <button>这是父组件的按钮</button>
            </div>
        `,
        // 2. 注册组件
        components:{// 组件内注册
            // 全局注册 局部注册 组件内注册
            // 父子组件实现层级关系，使用的时候必须看清楚声明的位置，组件内注册就是在某个组件内注册，作用域范围在这个组件内
            'son-cpn':sonConstructor
        }
    })

    // 根组件
    let app = new Vue({
      el:"#app",
      data:{ 
        msg:'hello world'
      },
      //父组件
      components:{
        'father-cpn':fatherConstructor,
      }
    })
  </script>
</body>
</html>